package com.mm.service;

import com.mm.bo.AdminListBo;
import com.mm.bo.AdminLoginBo;
import com.mm.bo.AdminUpateBo;
import com.mm.bo.InsertAdminInfoBo;
import com.mm.util.PageUtil;
import com.mm.vo.AdminListVo;
import com.mm.vo.AdminLoginVo;

import java.util.List;

/**
 * @ProjectName: System
 * @Package: com.mm.service
 * @ClassName: AdministratorInfoService
 * @Author: 杨朝湖
 * @Description:
 * @Date: 2020/12/8 10:18
 * @Version: 1.0
 */
public interface AdministratorInfoService {
    /**
     * 添加管理员信息
     *
     * @param insertAdminInfoBo 参数实体
     * @return
     * @throws Exception
     */
    Integer insertAdminInfo(InsertAdminInfoBo insertAdminInfoBo) throws Exception;

    /**
     * 管理员登录
     *
     * @param adminLoginBo
     * @return
     * @throws Exception
     */
    AdminLoginVo login(AdminLoginBo adminLoginBo) throws Exception;

    /**
     * 查询管理员列表
     *
     * @param adminListBo
     * @return
     */
    PageUtil<AdminListVo> queryAdminList(AdminListBo adminListBo);

    /**
     * 修改管理员的基本信息
     *
     * @param adminUpateBo
     * @return
     * @throws Exception
     */
    Integer updateAdminInfo(AdminUpateBo adminUpateBo) throws Exception;

    /**
     * 重置管理员的密码信息
     *
     * @param adminId 被重置管理员的Id
     * @param token
     * @return
     */
    Integer resetAdminPassword(String adminId, String token);

    /**
     * 删除管理员信息
     *
     * @param adminId
     * @param token
     * @return
     */
    Integer deleteAdminInfo(String adminId, String token);

    /**
     * 锁定登录账号
     *
     * @param adminId
     * @param token
     * @return
     */
    Integer lockingAdminInfo(String adminId, String token);
}
